package com.laowang.project.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.laowang.framework.aspectj.lang.annotation.Excel;
import com.laowang.project.system.domain.vo.ZcRecordVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * H5用户对象 zc_wx_user
 *
 * @author laowang
 * @date 2025-09-09
 */
@NoArgsConstructor
@Data
public class ZcWxUser implements Serializable {
  private static final long serialVersionUID = 1L;

  /**
   * $column.columnComment
   */
  @ApiModelProperty(value = "${comment}", required = false)
  private Integer id;

  /**
   * 昵称
   */
  @Excel(name = "昵称")
  @ApiModelProperty(value = "昵称", required = false)
  private String nickname;

  /**
   * 手机号
   */
  @Excel(name = "手机号")
  @ApiModelProperty(value = "手机号", required = false)
  private String phone;

  /**
   * 头像
   */
  @Excel(name = "头像")
  @ApiModelProperty(value = "头像", required = false)
  private String avatar;

  /**
   * 女0男1
   */
  @Excel(name = "女0男1")
  @ApiModelProperty(value = "女0男1", required = false)
  private Integer gender;

  /**
   * $column.columnComment
   */
  @Excel(name = "女0男1")
  @ApiModelProperty(value = "女0男1", required = false)
  private String openid;

  /**
   * 积分
   */
  @Excel(name = "积分")
  @ApiModelProperty(value = "积分", required = false)
  private Integer points;

  /**
   * 推荐人id
   */
  @Excel(name = "推荐人id")
  @ApiModelProperty(value = "推荐人id", required = false)
  private Integer introId;

  /**
   * 0没关注公众号,1关注了
   */
  @Excel(name = "0没关注公众号,1关注了")
  @ApiModelProperty(value = "0没关注公众号,1关注了", required = false)
  private Integer status;

  /**
   * 二维码地址
   */
  @Excel(name = "二维码地址")
  @ApiModelProperty(value = "二维码地址", required = false)
  private String qrcode;


  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
  @ApiModelProperty(value = "开始时间", required = false)
  private Date createTime;


  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
  @ApiModelProperty(value = "更新时间", required = false)
  private Date updateTime;


  @Transient
  @ApiModelProperty(value = "个人总众筹金额", required = false)
  private BigDecimal total;

  @Transient
  private List<ZcRecordVo> zcRecordVoList;
}
